For communication in packet switched networks, such as the Internet, data packets are transferred via the network from a sending end, e.g. a transmitter comprising an audio source and an encoder, to a receiving end, e.g. a receiver comprising a decoder. The flow of data packets sent from the sending end to the receiving end over the packet switched networks is referred to as the data packet stream. In the following, the data packets sent from the sending end (or encoder) may also be referred to as codec data packets. The real time transfer protocol (RTP) is generally used to send multimedia data, such as e.g. audio data, and is usually used in conjunction with the Real time transport control protocol (RTCP), wherein RTP is used to transfer the audio data and RTCP is used to periodically send control information, quality of service parameters and/or transmission statistics.
Generally, during voice over internet protocol (VoIP) applications, such as a VoIP audio conversation based on RTP packet streams, it is desirable to be able to detect if the packet stream is alive (i.e. if the RTP packet is indeed received at the remote side or receiver), or dead (i.e. if the RTP packet is not received at the remote side or receiver).
A packet stream can die for several reasons, such as a general problem in network transmission (no route exists to the destination due to router failure or router overloading), a loss in connection of a mobile device involved in the communication to a Wi-Fi or 3G network, a sudden introduction of an extreme delay (typically several seconds) in a 3G network connection, a corruption of a signaling protocol (e.g. session initiation protocol, SIP) wherein a packet transmission is stopped but the receiving end has not been notified, a policy change from a firewall thereby stopping a packet data stream from passing through, and a failure of a relay server in forwarding the data packets.
Detection of such situations, or more generally of a dead RTP packet stream, is desirable in order to improve the user experience in VoIP audio conversation. On the other hand, information about a dead connection usually requires some sort of action by the user, such as for example to check the connection using another channel (e.g. via RTCP) or, even more drastically, to restart a complete session. Thus, it is desirable that the determination of the status of an RTP packet stream (i.e. whether the RTP packet stream is dead or alive) is reliable and, in particular, that the number of invalid or false notifications to the user of a dead RTP packet stream is reduced.
Thus, there is a need for providing methods and devices that would overcome, or at least alleviate or mitigate, some of the above mentioned issues.